javascript algorithm programming